import {request} from "@umijs/max";
import {PageParam} from "@/services/common";
import {covertTableData} from "@/utils/tableUtil";

export interface  DictTypeVO {
        /**
        * 字典主键
        */
        id: number;
        /**
        * 字典名称
        */
        name?: string;
        /**
        * 字典类型
        */
        type?: string;
        /**
        * 状态（0正常 1停用）
        */
        status?: boolean;
        /**
        * 备注
        */
        remark?: string;
        /**
        * 创建者
        */
        creator?: string;
        /**
        * 创建时间
        */
}

export interface DictTypeQueryDTO extends PageParam {
        /**
        * 字典主键
        */
        id?: number;
        /**
        * 字典名称
        */
        name?: string;
        /**
        * 字典类型
        */
        type?: string;
        /**
        * 状态（0正常 1停用）
        */
        status?: boolean;
        /**
        * 备注
        */
}
export interface DictTypeUpdateDTO {
        /**
        * 字典主键
        */
        id?: number;
        /**
        * 字典名称
        */
        name?: string;
        /**
        * 字典类型
        */
        type?: string;
        /**
        * 状态（0正常 1停用）
        */
        status?: boolean;
        /**
        * 备注
        */
        remark?: string;
}

export const getDictTypeById = async (id: string) => {
    return request<DictTypeVO>(`/api/dictType?id=${id}`, {method: 'GET'})
}

export const getDictTypeList = async (params: DictTypeQueryDTO) => {
    return request<Array<DictTypeVO>>(`/api/dictType/list`, {method: 'GET', params})
}

export const getDictTypePage = async (params: DictTypeQueryDTO) => {
    let response = await request<Array<DictTypeVO>>(`/api/dictType/page`, {method: 'GET', params})
    return covertTableData(response)
}

export const updateDictType = async (dictTypeUpdateDTO: DictTypeUpdateDTO) => {
    return request<DictTypeVO>(`/api/dictType/update`, {method: 'POST', data: dictTypeUpdateDTO})
}

export const saveDictType = async (dictTypeUpdateDTO: DictTypeUpdateDTO) => {
    return request<DictTypeVO>(`/api/dictType/save`, {method: 'POST', data: dictTypeUpdateDTO})
}

export const removeDictType = async (id: number) => {
    return request<boolean>(`/api/dictType/remove?id=${id}`, {method: 'POST'})
}
